package zoran.wang.security;

import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
import zoran.wang.utils.MD5Utils;

/**
 * MD5密码加密器
 */
public class MD5PasswordEncoder implements PasswordEncoder {

    /**
     * 将明文密码进行加密
     *
     * @param rawPassword 原始密码（明文）
     * @return
     */
    @Override
    public String encode(CharSequence rawPassword) {
        return MD5Utils.md5(rawPassword.toString());
    }

    /**
     * 密码比较
     * 调用encode生成密文后，传到这个方法
     * 所以将MD5加密后的密码与密文进行比较即可得到密码对错
     *
     * @param rawPassword     明文
     * @param encodedPassword 密文
     * @return
     */
    @Override
    public boolean matches(CharSequence rawPassword, String encodedPassword) {
        return MD5Utils.md5(rawPassword.toString()).equals(encodedPassword);
    }
}
